package pcb.control.commands 
{
	import com.intel.patterns.cairngorm.CairngormEvent;
	import com.intel.patterns.cairngorm.ICommand;
	import flash.errors.IllegalOperationError;
	import pcb.models.ModelLocator;
	
	/**
	 * ...
	 * @author Fintan Boyle
	 */
	internal class AbstractCommand implements ICommand 
	{
		
		// define common reference to ModelLocator implementation
		protected static var models:ModelLocator = ModelLocator.getInstance();
		
		public function AbstractCommand() 
		{
			
		}
		
		/* INTERFACE com.intel.patterns.cairngorm.ICommand */
		
		/**
		 * Note: This method MUST be overridden in subclass
		 * @param	event 
		 */
		public function execute(event:CairngormEvent):void
		{
			throw new IllegalOperationError("execute needs to be overridden in subclass");
		}
		
	}
	
}